package com.example.baselib.utils.log;

interface ILog {

    /**
     * debug 日志输出接口
     * 例如:
     * format = "获取用户信息失败,错误码: %{private}s, 错误消息:%{public}s."
     * args = "10010","token 已过期"
     * <p>
     * 输出结果:  "获取用户信息失败,错误码: <private>, 错误消息:token 已过期."
     *
     * @param format 格式字符串,可以设置多个参数,具体取值在args中定义,
     *               每个参数需添加隐私标识，分为{public}或{private}，默认为{private}。
     *               {public}表示日志打印结果可见；{private}表示日志打印结果不可见，输出结果为<private>
     * @param args   可以为0个或多个参数，是格式字符串中参数类型对应的参数列表。参数的数量、类型必须与格式字符串中的标识一一对应。
     */
    void d(String format, Object... args);

    void i(String format, Object... args);

    void w(String format, Object... args);

    void e(String format, Object... args);

    boolean isLogger();

    class IConfig {

        //日志等级
        int level = 1;
        //是否显示行号
        boolean showLineNum = true;
        //参数是否私有化
        boolean isPrivate;
        //指定输出日志所对应的业务领域，取值范围为0x0~0xFFFFF
        int domain = 0x5928;
        String tag = "BGG";

    }

}
